home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: MegaDisc / MegaDisc 02 (1987)(MegaDisc Digital Publishing)(AU)[WB].zip / MegaDisc 02 (1987)(MegaDisc Digital Publishing)(AU)[WB].adf / PROGRAMS / tbomber < prev    next >
Text File  |  1987-04-21  |  11KB  |  401 lines

  1. DEFINT a,c-f,h-q,s-z
  2. RANDOMIZE TIMER
  3. DIM bomber$(158),revbomber$(158),bomb$(92),tank$(134),explo1$(314),explo2$(314)
  4.  
  5. drawtitle:  
  6. SCREEN 1,320,200,3,1
  7. WINDOW 2,"TANK BOMBER",(0,0)-(311,185),28,1
  8. LOCATE 4,4:PRINT"TANK BOMBER";
  9. LOCATE 6,4:PRINT"Place joystick in port #2"
  10. PRINT"& press trigger to start the game";
  11. SAY TRANSLATE$("TANK BOMAR            ")
  12. SAY TRANSLATE$("PLACE JOYSTICK IN PORT NUMBER TWO AND PRESS TRIGGER TO START THE GAME") 
  13. WHILE STRIG(3)=0:WEND
  14.  
  15. ChooseColours:
  16. FOR p=0 TO 7
  17.   READ r!,g!,b!
  18.   PALETTE p,r!,g!,b!
  19. NEXT p
  20. DATA 0.5,0.8,1.0  
  21. DATA 0,0,0          
  22. DATA 0.75,0.75,0.5    
  23. DATA 1.0,0.5,0     
  24. DATA 0.85,0,0.85  
  25. DATA 0.5,0.5,0.6    
  26. DATA 0,1.0,0     
  27. DATA 0.75,0,0      
  28.  
  29. Instructions:
  30. CLS
  31. LOCATE 4,4:PRINT"          INSTRUCTIONS":PRINT
  32. PRINT"      You are controlling a plane"
  33. PRINT"      which drops one bomb at a" 
  34. PRINT"      time. Score as many points" 
  35. PRINT"      as possible by dropping" 
  36. PRINT"      bombs on the tanks driving" 
  37. PRINT"          across the desert."
  38. PRINT"      If one of the tanks reaches"
  39. PRINT"      the side then the game ends."
  40. PRINT"      If you hit a tank you score "
  41. PRINT"              10 points."
  42. PRINT"      When all 3 tanks are bombed "
  43. PRINT"      another 3 will appear trave-"
  44. PRINT"             lling faster."
  45.  
  46.  
  47. ReadShapes:
  48. RESTORE BomberShape
  49. FOR n=1 TO 158
  50.   READ a
  51.   bomber$=bomber$+CHR$(a)
  52. NEXT n
  53. OBJECT.SHAPE 1,bomber$
  54.  
  55. RESTORE ReverseBomberShape
  56. FOR n=1 TO 158
  57.   READ a
  58.   revbomber$=revbomber$+CHR$(a)
  59. NEXT n
  60. OBJECT.SHAPE 2,revbomber$
  61.  
  62. RESTORE BombShape
  63. FOR n=1 TO 92
  64.   READ a
  65.   bomb$=bomb$+CHR$(a)
  66. NEXT n
  67. OBJECT.SHAPE 3,bomb$
  68.  
  69. RESTORE TankShape
  70. FOR n=1 TO 134
  71.   READ a
  72.   tank$=tank$+CHR$(a)
  73. NEXT n
  74. OBJECT.SHAPE 4,tank$
  75. OBJECT.SHAPE 5,4
  76. OBJECT.SHAPE 6,4
  77.  
  78. RESTORE ExplosionShape1
  79. FOR n=1 TO 314
  80.   READ a
  81.   explo1$=explo1$+CHR$(a)
  82. NEXT n
  83. OBJECT.SHAPE 7,explo1$
  84.  
  85. RESTORE ExplosionShape2
  86. FOR n=1 TO 314
  87.   READ a
  88.   explo2$=explo2$+CHR$(a)
  89. NEXT n
  90. OBJECT.SHAPE 8,explo2$
  91.  
  92. OBJECT.PRIORITY 1,1
  93. OBJECT.PRIORITY 2,1
  94. OBJECT.PRIORITY 3,4
  95. OBJECT.PRIORITY 4,3
  96. OBJECT.PRIORITY 5,3
  97. OBJECT.PRIORITY 6,3
  98. OBJECT.PRIORITY 7,2
  99. OBJECT.PRIORITY 8,1
  100.  
  101. OBJECT.HIT 1,8,1
  102. OBJECT.HIT 2,8,1
  103. OBJECT.HIT 3,2,5
  104. OBJECT.HIT 4,4,1
  105. OBJECT.HIT 5,4,1
  106. OBJECT.HIT 6,4,1
  107. OBJECT.HIT 7,16,0
  108. OBJECT.HIT 8,16,1
  109.  
  110. PRINT:PRINT"        Press trigger to start"
  111. WHILE STRIG(3)=0:WEND          
  112.  
  113. CLS:COLOR 0,1                  'draw sky
  114. LINE (0,90)-(311,185),2,bf     'draw sand
  115.  
  116. DrawMountains:
  117. RESTORE MountainShape
  118. PSET (311,89),1
  119. FOR a=0 TO 16
  120.   READ x,y
  121.   LINE -(x,y),1
  122. NEXT a
  123. PAINT (155,85),1
  124. LOCATE 23,4:PRINT USING"SCORE = ###";score
  125.  
  126. PlaceObjects:
  127. OBJECT.X 1,0:OBJECT.Y 1,4
  128. OBJECT.X 2,0:OBJECT.Y 2,4
  129. velocity=0
  130. OBJECT.ON 1:jet=1
  131. OBJECT.VX 1,25
  132.  
  133. Tanks:
  134. wreck=0:velocity=velocity-2
  135. OBJECT.Y 4,100
  136. OBJECT.Y 5,120
  137. OBJECT.Y 6,160
  138. FOR j=0 TO 2
  139.   xplace(j)=INT(RND(1)*100)+187
  140.   OBJECT.X j+4,xplace(j)
  141. NEXT j
  142. OBJECT.ON 4,5,6
  143. OBJECT.VX 4,velocity
  144. OBJECT.VX 5,velocity
  145. OBJECT.VX 6,velocity
  146. OBJECT.START
  147. COLLISION OFF
  148. ON COLLISION GOSUB Collide:COLLISION ON
  149. GOTO MainLoop
  150.  
  151. MainLoop:
  152. IF wreck=3 THEN GOTO Tanks
  153. WHILE STICK(2)=0 AND STRIG(3)=0:WEND
  154.   GOSUB Joystick
  155. GOTO MainLoop
  156.  
  157. Joystick:
  158. IF STRIG(3)=-1 THEN
  159.   bomb=1
  160.   OBJECT.X 3,OBJECT.X(jet)+10:OBJECT.Y 3,18
  161.   OBJECT.VY 3,25:OBJECT.START 3
  162.   OBJECT.ON 3
  163. END IF
  164. IF STICK(2)=1 THEN              'pushed to right
  165.   OBJECT.X 1,OBJECT.X(2)+6      'place right jet in left jets place
  166.   jet=1
  167.   OBJECT.OFF 2:OBJECT.ON 1      'replace on screen
  168.   OBJECT.VX 1,25                'set jet speed 25 to the right
  169.   OBJECT.START 1                'move right jet
  170. END IF
  171. IF STICK(2)=-1 THEN             'pushed to left
  172.   OBJECT.X 2,OBJECT.X(1)-6      'place left jet in right jets place
  173.   jet=2
  174.   OBJECT.OFF 1:OBJECT.ON 2      'replace on screen
  175.   OBJECT.VX 2,-25               'set jet speed 25 to the left
  176.   OBJECT.START 2                'move left jet
  177. END IF
  178. RETURN
  179.  
  180. Collide:
  181. objectID=COLLISION(0)
  182. collisionID=COLLISION(objectID)
  183.  
  184.  
  185. IF objectID=1 THEN              'right jet hit border 
  186.   OBJECT.X 2,OBJECT.X(1)-6      'place left jet in right jets place
  187.   jet=2
  188.   OBJECT.OFF 1:OBJECT.ON 2      'replace on screen
  189.   OBJECT.VX 2,-25               'set jet speed 25 to the left
  190.   OBJECT.START 2                'move left jet
  191. END IF
  192. IF objectID=2 THEN              'left jet hit border
  193.   OBJECT.X 1,OBJECT.X(2)+6      'place right jet in left jets place
  194.   jet=1
  195.   OBJECT.OFF 2:OBJECT.ON 1      'replace on screen
  196.   OBJECT.VX 1,25                'set jet speed 25 to the right
  197.   OBJECT.START 1                'move right jet
  198. END IF
  199. IF objectID>=3 AND (collisionID=3 OR collisionID=4 OR collisionID=5 OR collisionID=6) THEN
  200.                             'bomb hit a tank
  201.   OBJECT.OFF collisionID,objectID    'wipe out tank,bomb
  202.   bomb=0
  203.   GOSUB Explosion
  204.   wreck=wreck+1:score=score+10
  205. END IF
  206. IF objectID=3 AND collisionID=-3 THEN  
  207.                             'bomb hit border
  208.   OBJECT.OFF 3
  209.   bomb=0
  210.   GOSUB Explosion
  211. END IF
  212. IF objectID>3 AND collisionID<0 THEN    'a tank hit border
  213.   endgame=1:END
  214. END IF
  215. RETURN    
  216.  
  217. Explosion:
  218. OBJECT.X 7,OBJECT.X(objectID):OBJECT.Y 7,OBJECT.Y(objectID)-8      'put explo1 at bomb position
  219. OBJECT.OFF objectID
  220. OBJECT.ON 7
  221. OBJECT.X 8,OBJECT.X(7):OBJECT.Y 8,OBJECT.Y(7):OBJECT.ON 8
  222. OBJECT.OFF 7
  223. OBJECT.OFF 8
  224. RETURN
  225.  
  226. BomberShape:
  227. ' dbomber -- 158 bytes.
  228. DATA   0,  0,  0,  0,  0,  0,  0,  0
  229. DATA   0,  0,  0,  3,  0,  0,  0, 26
  230. DATA   0,  0,  0, 11,  0, 24,  0,  7
  231. DATA   0,  0,254,  0,  0,  0,112,  0
  232. DATA   0,  0, 56,  0,  0,  0, 60,  0
  233. DATA   0,  0, 30,  1,  0,  0,255,255
  234. DATA 254,  0,255,255,255,192, 96,255
  235. DATA   0,  0, 65,248,  0,  0,  7,192
  236. DATA   0,  0, 31,254,  0,  0,254,  0
  237. DATA   0,  0,112,  0,  0,  0, 56,  0
  238. DATA   0,  0, 60,  0,  0,  0, 30,  1
  239. DATA   0,  0,127,255,248,  0,127,255
  240. DATA 255,192, 96,255,  0,  0, 65,248
  241. DATA   0,  0,  7,192,  0,  0, 31,254
  242. DATA   0,  0,  2,  0,  0,  0,  0,  0
  243. DATA   0,  0,  0,  0,  0,  0,  0,  0
  244. DATA   0,  0,  0,  1,  0,  0,  0,  0
  245. DATA   6,  0,  0,  0,  0,  0,  0,  0
  246. DATA   0,  0,  0,  0,  0,  0,  0,  0
  247. DATA   0,  0,  0,  2,  0,  0
  248.  
  249. ReverseBomberShape:
  250. ' dbomber (shape reversed) --158 bytes
  251. DATA   0,  0,  0,  0,  0,  0,  0,  0
  252. DATA   0,  0,  0,  3,  0,  0,  0, 26
  253. DATA   0,  0,  0, 11,  0, 24,  0,  7
  254. DATA   0,  0,  0,  0,  0,127,  0,  0
  255. DATA   0, 14,  0,  0,  0, 28,  0,  0
  256. DATA   0, 60,  0,  0,128,120,  0,127
  257. DATA 255,255,  3,255,255,255,  0,  0
  258. DATA 255,  6,  0,  0, 31,130,  0,  0
  259. DATA   3,224,  0,  0,128,248,  0,  0
  260. DATA   0,127,  0,  0,  0, 14,  0,  0
  261. DATA   0, 28,  0,  0,  0, 60,  0,  0
  262. DATA 128,120,  0, 31,255,254,  3,255
  263. DATA 255,254,  0,  0,255,  6,  0,  0
  264. DATA  31,130,  0,  0,  3,224,  0,  0
  265. DATA 127,248,  0,  0,  0, 64,  0,  0
  266. DATA   0,  0,  0,  0,  0,  0,  0,  0
  267. DATA   0,  0,  0,  0,128,  0,  0, 96
  268. DATA   0,  0,  0,  0,  0,  0,  0,  0
  269. DATA   0,  0,  0,  0,  0,  0,  0,  0
  270. DATA   0,  0,  0,  0, 64,  0
  271.  
  272.  
  273. BombShape:
  274. ' dbomb -- 92 bytes.
  275. DATA   0,  0,  0,  0,  0,  0,  0,  0
  276. DATA   0,  0,  0,  3,  0,  0,  0, 11
  277. DATA   0,  0,  0, 11,  0, 24,  0,  7
  278. DATA   0,  0,  0,  0,  0,  0,  0,  0
  279. DATA   0,  0,  0,  0,  0,  0,  0,  0
  280. DATA   0,  0,  0,  0,  0,  0,  0,  0
  281. DATA   0,  0,  0,  0,  0,  0,  0,  0
  282. DATA   0,  0,  0,  0,  0,  0,  0,  0
  283. DATA   0,  0,  0,  0,  0,  0,225,192
  284. DATA 115,128, 51,  0, 30,  0, 12,  0
  285. DATA  12,  0, 12,  0, 63,  0, 30,  0
  286. DATA  12, 0, 12, 0
  287.  
  288. TankShape:
  289. ' dtanx -- 134 bytes.
  290. DATA   0,  0,  0,  0,  0,  0,  0,  0
  291. DATA   0,  0,  0,  3,  0,  0,  0, 24
  292. DATA   0,  0,  0,  9,  0, 24,  0,  7
  293. DATA   0,  0,  0,127,128,  0,255,255
  294. DATA 192,  0,  0, 63,  0,  0, 31,255
  295. DATA 240,  0,255,255,254,  0, 63,255
  296. DATA 248,  0,127,255,252,  0,179, 51
  297. DATA  26,  0,127,255,252,  0,  0,  0
  298. DATA   0,  0,128,  0,  0,  0,  0,  0
  299. DATA   0,  0,  0,  0,  0,  0,  0,  0
  300. DATA   0,  0,  0,  0,  0,  0,  0,  0
  301. DATA   0,  0,  0,  0,  0,  0,  0,  0
  302. DATA   0,  0,  0,127,128,  0,128,255
  303. DATA 192,  0,  0, 63,  0,  0, 31,255
  304. DATA 240,  0,255,255,254,  0, 63,255
  305. DATA 248,  0,  0,  0,  0,  0, 51, 51
  306. DATA  24,  0, 24,  0, 24,  0
  307.  
  308. ExplosionShape1:
  309. ' dexplo1 -- 314 bytes.
  310. DATA   0,  0,  0,  0,  0,  0,  0,  0
  311. DATA   0,  0,  0,  3,  0,  0,  0, 33
  312. DATA   0,  0,  0, 16,  0, 24,  0,  7
  313. DATA   0,  0,  0,  0,  0,  0,  0,  0
  314. DATA   0,  0,  0,  0,  0,  0,  0,  0
  315. DATA   0,  0,  0,  0,  0,  0,  0,  0
  316. DATA   0,  0,  0,  0,  0,  0,  0,  0
  317. DATA   0,  0,  0,  0,  0,  0,  0,  0
  318. DATA   0,  0,  0,  0,  0,  3,192,  0
  319. DATA   0,  0,  0,  3,192,  0,  0,  0
  320. DATA   0,  0,  0,  0,  0,  0,  0,  0
  321. DATA   0,  0,  0,  0,  0,  0,  0,  0
  322. DATA   0,  0,  0,  0,  0,  0,  0,  0
  323. DATA   0,  0,  0,  0,  0,  0,  0,  0
  324. DATA   0,  0,  0,  0,  0,  0,  0,  0
  325. DATA   0,  0,  0, 64,  0,  0,  0,  0
  326. DATA   0, 32,  1,  0,  0,  0,  0, 16
  327. DATA  34, 24,  0,  0,  4, 16,196, 96
  328. DATA   0,  0,195,  9, 89,128,  0,  0
  329. DATA  60,197,166,  0,  0,  0,  3,178
  330. DATA 216,  0,  0,  0,  1,251,239,128
  331. DATA   0,  0, 62, 31,255,240,  0,  0
  332. DATA   0,252,252,  0,  0,  0,  7, 42
  333. DATA  35,192,  0,  0, 24,202, 16, 56
  334. DATA   0,  0,  1, 10, 12,  0,  0,  0
  335. DATA   2,  9,  2,  0,  0,  0,  4,  1
  336. DATA   1,128,  0,  0,  8,  0,  0, 64
  337. DATA   0,  0,  0, 64,  0,  0,  0,  0
  338. DATA   0, 32,  1,  0,  0,  0,  0, 16
  339. DATA  34, 24,  0,  0,  4, 16,196, 96
  340. DATA   0,  0,195,  9, 89,128,  0,  0
  341. DATA  60,197,166,  0,  0,  0,  3,178
  342. DATA 216,  0,  0,  0,  1,248, 47,128
  343. DATA   0,  0, 62, 28, 63,240,  0,  0
  344. DATA   0,252,252,  0,  0,  0,  7, 42
  345. DATA  35,192,  0,  0, 24,202, 16, 56
  346. DATA   0,  0,  1, 10, 12,  0,  0,  0
  347. DATA   2,  9,  2,  0,  0,  0,  4,  1
  348. DATA   1,128,  0,  0,  8,  0,  0, 64
  349. DATA   0,  0
  350.  
  351. ExplosionShape2:
  352. ' dexplo2 -- 314 bytes.
  353. DATA   0,  0,  0,  0,  0,  0,  0,  0
  354. DATA   0,  0,  0,  3,  0,  0,  0, 33
  355. DATA   0,  0,  0, 16,  0, 24,  0,  7
  356. DATA   0,  0,  0, 64,  0,  0,  0,  0
  357. DATA   0, 32,  1,  0,  0,  0,  0,  0
  358. DATA  38, 24,  0,  0,  4,  0,192,  0
  359. DATA   0,  0,194,  0,  0,  0,  0,  0
  360. DATA   0,  1,134,  0,  0,  0,  0,  0
  361. DATA 136,  0,  0,  0,  1,176,  1,128
  362. DATA   0,  0,112,  0,252, 48,  0,  0
  363. DATA   0, 24, 96,  0,  0,  0,  7,  0
  364. DATA   0,  0,  0,  0, 24,192,  0, 24
  365. DATA   0,  0,  0,  8, 12,  0,  0,  0
  366. DATA   0,  9,  0,  0,  0,  0,  4,  1
  367. DATA   0,128,  0,  0,  8,  0,  0, 64
  368. DATA   0,  0,  0, 64,  0,  0,  0,  0
  369. DATA   0,  0,  1,  0,  0,  0,  0, 16
  370. DATA  32,  8,  0,  0,  4, 16,  4, 96
  371. DATA   0,  0,129,  9,121,128,  0,  0
  372. DATA  60,197,166,  0,  0,  0,  3,178
  373. DATA  80,  0,  0,  0,  1,107,238,128
  374. DATA   0,  0,110, 31,207,208,  0,  0
  375. DATA   0,236,220,  0,  0,  0,  3, 42
  376. DATA  35,192,  0,  0, 16, 74, 16, 40
  377. DATA   0,  0,  1,  2,  8,  0,  0,  0
  378. DATA   2,  8,  2,  0,  0,  0,  0,  1
  379. DATA   1,  0,  0,  0,  8,  0,  0, 64
  380. DATA   0,  0,  0, 64,  0,  0,  0,  0
  381. DATA   0, 32,  1,  0,  0,  0,  0,  0
  382. DATA  38, 24,  0,  0,  4,  0,192,  0
  383. DATA   0,  0,194,  0,  0,  0,  0,  0
  384. DATA   0,  1,134,  0,  0,  0,  0,  0
  385. DATA 136,  0,  0,  0,  1,176,  1,128
  386. DATA   0,  0,112,  0, 60, 48,  0,  0
  387. DATA   0, 24, 96,  0,  0,  0,  7,  0
  388. DATA   0,  0,  0,  0, 24,192,  0, 24
  389. DATA   0,  0,  0,  8, 12,  0,  0,  0
  390. DATA   0,  9,  0,  0,  0,  0,  4,  1
  391. DATA   0,128,  0,  0,  8,  0,  0, 64
  392. DATA   0,  0
  393.  
  394. MountainShape:
  395. DATA 0,89,0,70,40,60,50,85
  396. DATA 80,55,120,79,137,79,144,60
  397. DATA 170,58,200,69,220,56,255,76
  398. DATA 262,60,269,76,285,55,311,75
  399. DATA 311,89
  400.  
  401.